package codigoWeb;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;

/**
 * Servlet implementation class CompraRodamientos
 */
public class CompraRodamientos extends HttpServlet {
	private Connection con;
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CompraRodamientos() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//String usuario = request.getParameter("usuario");
		 //String password =  request.getParameter("passwd");
		String usuario = "funfun"; String password = "funfun"; 
		ArrayList<String> compras = new  ArrayList<String>();
		
			try {
				
				Class.forName("net.sourceforge.jtds.jdbc.Driver");
				String connectionUrl = "jdbc:jtds:sqlserver://localhost:1433/macaca;";
				con = DriverManager.getConnection(connectionUrl,usuario,password);
				System.out.println(con.getCatalog());
				Statement stm = con.createStatement();
				ResultSet rs = stm.executeQuery("select oc.NroOC,oc.Fecha, oc.idProveedor,ioc.iditemOC,ioc.cantidad,ioc.codigoSFK from dbo.OrdenCompra oc, dbo.ItemOC ioc where oc.NroOC=ioc.NroOC");
					while(rs.next())
					{
						
						compras.add(String.valueOf(rs.getString(1)));
					  //  compras.add(Date.parse((rs.getString(2))));
						compras.add(String.valueOf(rs.getString(3)));
						compras.add(String.valueOf(rs.getString(4)));
						compras.add(String.valueOf(rs.getString(5)));
						compras.add((rs.getString(6)));
						
					}
			} catch (ClassNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
			} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
			}

			PrintWriter out = response.getWriter();
			 String title = "Ordenes de Compra Generadas";
		 
		
			 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
				try{
					
				DocumentBuilder builder = factory.newDocumentBuilder();
				DOMImplementation implementation = builder.getDOMImplementation();
				Document document = implementation.createDocument(null,"xml",null);
				Element raiz = document.createElement("OrdenCompra");  // creamos el elemento raiz
				
				
				
				Iterator<String> i = compras.iterator();
				while(i.hasNext()) {
					 String uno= i.next();
					// String dos= i.next();
					 String tres= i.next();
					 String cuatro= i.next();
					 String cinco= i.next();
					 String seis= i.next();

					 
					 
					 
					 Element elemento = document.createElement("NroOc");
					 Text text1 = document.createTextNode(uno);
					// Element elemento1 = document.createElement("Fecha"); //creamos un nuevo elemento
					// Text text2 = document.createTextNode(dos);//Ingresamos la info
					 Element elemento2 = document.createElement("Proveedor"); //creamos un nuevo elemento
					 Text text3 = document.createTextNode(tres);//Ingresamos la info
					 Element elemento3 = document.createElement("ItemOrdenCompra"); //creamos un nuevo elemento
					 Text text4 = document.createTextNode(cuatro);//Ingresamos la info
					 Element elemento4 = document.createElement("Cantidad"); //creamos un nuevo elemento
					 Text text5 = document.createTextNode(cinco);//Ingresamos la info
					 Element elemento5 = document.createElement("CodigoSFK"); //creamos un nuevo elemento
					 Text text6 = document.createTextNode(seis);//Ingresamos la info
					 
				
				document.setXmlVersion("1.0"); // asignamos la version de nuestro XML"
				document.getDocumentElement().appendChild(raiz);  //pegamos la raiz al documento
				raiz.appendChild(elemento); //pegamos el elemento hijo a la raiz
				elemento.appendChild(text1); //
				//raiz.appendChild(elemento);
				//elemento.appendChild(text2); //
				elemento2.appendChild(text3); //
				raiz.appendChild(elemento2);
				elemento3.appendChild(text4); //
				raiz.appendChild(elemento3);
				elemento4.appendChild(text5); //
				raiz.appendChild(elemento4);
				elemento5.appendChild(text6); //
				raiz.appendChild(elemento5);
				 }
				Source source = new DOMSource(document);
				Result result = new StreamResult(new java.io.File("OrdenCompra.xml")); //nombre del archivo
				Result console= new StreamResult(System.out);

				Transformer transformer = TransformerFactory.newInstance().newTransformer();
				transformer.transform(source, result);
				transformer.transform(source, console);
				out.println("Se genero el archivo OdenCompra.xml");
				}catch(Exception e){
				System.err.println("Error: "+e);
				}

				}
	
			
		
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}
